package org.javahispano.javacup.tacticas_aceptadas.FGR.javacup2009.gallegux.javacup2009.canelaenrama;


import org.javahispano.javacup.modelo.Constantes;
import org.javahispano.javacup.modelo.JugadorDetalle;
import org.javahispano.javacup.modelo.Posicion;


/** 
0.0  0.3  17.188733853924695
0.0  0.3  17.188733853924695
0.0  0.3  17.188733853924695
0.0  0.3  17.188733853924695
0.5  0.2  11.459155902616464
0.5  0.2  11.459155902616464
0.75 0.15  8.594366926962348
0.75 0.15  8.594366926962348
1.0  0.1   5.729577951308232
1.0  0.1   5.729577951308232
1.0  0.1   5.729577951308232 / 2.8 -> 2 --> 3
*/ 

public class InfoEquipo 
{
	
	// goles
	public int goles = 0;
	public int posesion = 0;
	
	// almacena el n� de iteracion en la que el jugador la golpeo por ultima vez
	public int[] ultimoGolpeo = new int[] {-99, -99, -99,  -99, -99, -99,  -99, -99, -99,  -99, -99};
	
	// indice del portero en los arrays
	public int indicePortero = 0;
	
	
	public double[] velocidad;
	public double[] precision;
	public double[] errorAngular;
	public double[] fuerza;
	
	public Posicion[] posActual = new Posicion[CTE.NUM_JUGADORES];
	public Posicion[] posAnterior = new Posicion[CTE.NUM_JUGADORES];
	public int[] puedeRematar;
	

	
	public InfoEquipo(JugadorDetalle[] detalleJugadores)
	{
		velocidad = new double[detalleJugadores.length];
		precision = new double[detalleJugadores.length];
		errorAngular = new double[detalleJugadores.length];
		fuerza = new double[detalleJugadores.length];
		
		for (int i = 0; i < CTE.NUM_JUGADORES; i++) {
			velocidad[i] = Constantes.getVelocidad(detalleJugadores[i].getVelocidad());
			precision[i] = detalleJugadores[i].getPresicion();
			errorAngular[i] = Constantes.getErrorAngular(precision[i]);
			fuerza[i] = detalleJugadores[i].getRemate();
			
			//System.out.println(Math.toDegrees(errorAngular[i]));
			
			if (detalleJugadores[i].esPortero()) {
				indicePortero = i;
			}
		}
	}
	
	
	
	/**
	 * devuelve si las posiciones de la iteracion anterior son iguales a la de la iteracio actual
	 * @return
	 */
	public boolean posicionesIguales()
	{
		boolean iguales = true;
		
		for (int i = 0; iguales && i < CTE.NUM_JUGADORES; i++) {
			iguales = iguales && posActual[i].equals(posAnterior[i]);
		}
		
		return iguales;
	}
	
	
	
	public void setPosiciones(Posicion[] posiciones)
	{
		if (posActual[0] != null) {
			for (int i = 0; i < CTE.NUM_JUGADORES; i++) {
				posAnterior[i] = new Posicion(posActual[i]);
			}
		}

		for (int i = 0; i < CTE.NUM_JUGADORES; i++) {
			posActual[i] = new Posicion(posiciones[i]);
		}
	}
	
	
	
	public void setPuedenRematar(int[] pr)
	{
		puedeRematar = pr;
	}
	
	
	public void setUltimoGolpeo(int jugador)
	{
		ultimoGolpeo[jugador] = CanelaTactica.iteracionPartido;
	}
	
	
}
